/**
 * @template T
 * @typedef Pagination
 * @property {number} current_page 当前页号
 * @property {number} total 总条数
 * @property {T} data 数据数组
 */
/**
 * @typedef ReqPage
 * @property {number} page 页号
 */
import request from "@/utils/request.js";
/**
 * @typedef Banner
 * @property {string} create_time banner 创建时间
 * @property {string} icon banner 图片数组字符串
 * @property {number} id banner 的 id
 * @property {string} name banner 的名称
 * @property {number} sort banner 的排序序号
 * @property {0 | 1} status banner 的状态
 * @property {string} update_time banner 更新时间
 */
/**
 * 获取首页轮翻图 banner 列表
 * @return {Promise<Banner[]>}
 */
export async function getBannerList() {
  return await request.post("/api/setting/banner_list");
}
/**
 * @typedef Notice
 * @property {string} create_time 创建时间
 * @property {string} icon 公告图片数组字符串
 * @property {number} id 公告 id
 * @property {string} name 公告名称
 * @property {number} sort 公告排序序号
 * @property {0 | 1} status 公告状态
 * @property {string} update_time 公告更新时间
 * @property {string} value 公告内容
 */
/**
 * 获取公告列表
 * @returns {Promise<Notice[]>}
 */
export function getNoticeList() {
  return request.post("/api/setting/notice_list");
}
/**
 * @typedef Drama
 * @property {number} collect_number 大戏被收藏数量
 * @property {string} create_time 大戏创建时间
 * @property {string} drama_video 大戏视频列表字符串
 * @property {string} icon 大戏图标列表字符串
 * @property {number} id 大戏 id
 * @property {number} like_number 大戏被点赞次数
 * @property {string} name 大戏名称
 * @property {string} picture 大戏图片列表字符串
 * @property {number} sort 大戏排序序号
 * @property {0 | 1} status 大戏状态
 * @property {string} update_time 大戏更细时间
 */
/**
 * 获取二人转大戏列表
 * @returns {Promise<Drama[]>}
 */
export function getSong() {
  return request.post("/api/setting/company_details");
}
/**
 * @typedef Show
 * @property {string} create_time 剧场创建时间
 * @property {number} id 剧场 id
 * @property {string} introduce 剧场简介
 * @property {string} pictures 剧场图片列表字符串
 * @property {string} show_address 剧场地址
 * @property {string} show_dates 剧场演出日期
 * @property {string} show_times 剧场演出时间
 * @property {number} sort 剧场排序序号
 * @property {0 | 1} status 剧场状态
 * @property {string} update_time 剧场更新时间
 */
/**
 * 获取今日主题列表
 * @return {Promise<Pagination<Show[]>>}
 */
export function getPerform() {
  return request.post("/api/project/show_list");
}
/**
 * @typedef Actor
 * @property {string} background_picture 演员背景图片列表字符串
 * @property {string} create_time 演出创建时间
 * @property {string} fans_group_qrcode 粉丝群二维码列表字符串
 * @property {number} id 演员 id
 * @property {string} introduce 演员简介
 * @property {number} likes_number 演员被点赞数量
 * @property {string} name 演员姓名
 * @property {string} pictures 演员图片列表字符串
 * @property {string} show_time 演员演出时间
 * @property {number} sort 演员排序序号
 * @property {0 | 1} status 演员状态
 * @property {string} update_time 演员更新时间
 */
/**
 * 获取演员列表
 * @param {ReqPage} params 请求对象
 * @returns {Promise<Pagination<Actor[]>>}
 */
export function getPerformer(params) {
  return request.post("/api/project/performer_list", params);
}
/**
 * @typedef Short
 * @property {number} category_id 短剧分类 id
 * @property {string} category_name 短剧分类名称
 * @property {string} cover 短剧封面图片列表字符串
 * @property {string} create_time 短剧创建时间
 * @property {number} episodes 短剧剧集数量
 * @property {number} id 短剧 id
 * @property {string} introduce 短剧简介
 * @property {string} name 短剧名称
 * @property {number} play_number 短剧播放次数
 * @property {number} sort 短剧排序序号
 * @property {0 | 1} 短剧状态
 * @property {string} update_time 短剧更新时间
 */
/**
 * 获取短剧列表
 * @returns {Promise<Pagination<Short[]>>}
 */
export function getshortPlay(data) {
  return request.post("/api/project/short_tv_list", data);
}
/**
 * 短剧详情
 * @param data
 * @returns {Promise | Promise<unknown>}
 */
export function shortPlayDeatils(data) {
  return request.post("/api/project/short_tv_details", data);
}
/**
 * 获取剧集列表
 * @param data
 * @returns {Promise<unknown>}
 */
export function getEpisodeList(data) {
  return request.post("/api/project/short_tv_ji_list", data);
}
/**
 * 获取剧集详情
 * @param data
 * @returns {Promise<unknown>}
 */
export function getEpisodeDetails(data) {
  return request.post("/api/project/short_tv_ji_details", data);
}

/**
 * 获取演出详情
 * @param data
 * @returns {Promise<unknown>}
 */
export function getPerformDetails(data) {
  return request.post("/api/project/show_details", data);
}

/**
 * 获取演出场次
 * @param data
 * @returns {Promise<unknown>}
 */
export function getPerformNum(data) {
  return request.post("/api/project/scene_list", data);
}

/**
 * 获取演出价格
 * @param data
 * @returns {Promise<unknown>}
 */
export function getPerformPrice(data) {
  return request.post("/api/project/price_list", data);
}

/**
 * 短剧分类
 * @param data
 * @returns {Promise<unknown>}
 */
export function getShortMenu(data) {
  return request.post("/api/project/short_category", data);
}

/**
 * 演员详情
 * @param data
 * @returns {Promise<unknown>}
 * @constructor
 */
export function PerformerDetails(data) {
  return request.post("/api/project/performer_details", data);
}

/**
 * 演员作品列表
 * @param data
 * @returns {Promise<unknown>}
 * @constructor
 */
export function PerformerWorks(data) {
  return request.post("/api/project/performer_work_list", data);
}

/**
 * 演员排期列表
 * @param data
 * @returns {Promise<unknown>}
 * @constructor
 */
export function PerformerTime(data) {
  return request.post("/api/project/performer_date_list", data);
}

/**
 * 微信登录
 * @param data
 * @returns {Promise<unknown>}
 */
export function wxLoginCode(data) {
  return request.post("/api/user/wx_app_auth", data);
}

/**
 * 获取微信手机号
 * @param data
 * @returns {Promise<unknown>}
 */
export function getwxPhone(data, options) {
  return request.post("/api/user/get_phone_number", data, options);
}

export default {
  getBannerList,
  getNoticeList,
  getSong,
  getPerform,
  getPerformDetails,
  getPerformNum,
  getPerformPrice,
  getShortMenu,
  getshortPlay,
  shortPlayDeatils,
  getEpisodeList,
  getEpisodeDetails,
  getPerformer,
  PerformerDetails,
  PerformerWorks,
  PerformerTime,
  wxLoginCode,
  getwxPhone,
};
